package com.likeyoudo.views.utils;

import android.view.Menu;
import android.view.MenuItem;

import androidx.annotation.NonNull;

import com.likeyoudo.views.type.entity.router.RouterData;

import java.util.List;

/**
 * @author LikeYouDo
 * @date 2024/1/6 21:51
 */
public class RouterDataUtils {

    /**
     * 处理路由菜单,只获取所有的最底层
     *
     * @param source 传入请求后的router的数组(树状)
     * @param target 返回所有children为null的router的数组(无树状)
     */
    public static void getRoutersAllChildren(@NonNull List<RouterData> source, @NonNull List<RouterData> target) {
        for (RouterData routerData : source) {
            if (routerData.getChildren() != null && !routerData.getChildren().isEmpty()) {
                getRoutersAllChildren(routerData.getChildren(), target);
            } else {
                target.add(routerData);
            }
        }
    }

    /**
     * 处理路由菜单,返回树状展开的数组
     *
     * @param source 传入请求后的router的数组(树状)
     * @param target 返回所有children为null的router的数组(树状展开状态)
     */
    public static void openRouters(List<RouterData> source, List<RouterData> target) {
        for (RouterData routerData : source) {
            if (routerData.getChildren() != null && !routerData.getChildren().isEmpty()) {
                target.add(routerData);
                openRouters(routerData.getChildren(), target);
            }
        }
    }

    public static int getMenuItemIndex(Menu menu, RouterData routerData) {
        for (int i = 0; i < menu.size(); i++) {
            MenuItem item = menu.getItem(i);
            if (item.getTitle().toString().equals(routerData.getMeta().getTitle())) {
                return i;
            }
        }
        return -1;
    }
}

